aSet = {x for x in 'wengchongyu' if x not in 'chong'}
print(aSet)

# 修改
aSet.add('william')
print(aSet)

# list tuple dict
aSet.update(('y',123,'u'))
# 字符串 会拆分成字符 更新
# 正如 set(('apple')) --> {'l', 'e', 'p', 'a'}
aSet.update('weng')
print(aSet)
# {'y', 'u', 'n', 'g', 123, 'w', 'e', 'william'}

aSet.remove(123)
print(aSet)
# {'y', 'u', 'n', 'g', 'w', 'e', 'william'}
# KeyError: 456
# aSet.remove(456)
# discard 也删除，忽略key不存在
aSet.discard(456)
print(aSet)
# {'y', 'u', 'n', 'g', 'w', 'e', 'william'}

# 因为无序，所以随机删除(其实也不一定)
aSet.pop()
print(aSet)
# {'u', 'n', 'g', 'w', 'e', 'william'}

# ---------------

# 这下升华了，像这些有序序列
# 转成set后，自动升序了
list1 = [7, 1, 2, 6, 9, 4]; tup1 = [7, 1, 2, 6, 9, 4]
set1 = set(list1); set2 = set(tup1); set3 = set('integration')
print(set1, set2, set3)
# {1, 2, 4, 6, 7, 9} {1, 2, 4, 6, 7, 9} {'i', 'g', 't', 'a', 'o', 'n', 'r', 'e'}
# 字符串则不会
# 同样的，这一样在 set.pop()时，表现出了 不随机的现象：从左往右弹出
print(set1.pop(), set1)
print(set2.pop(), set2)
print(set3.pop(), set3)
'''
1 {2, 4, 6, 7, 9}
1 {2, 4, 6, 7, 9}
g {'i', 'r', 'n', 'o', 'a', 't', 'e'}
'''

# TypeError: unsupported operand type(s) for +: 'set' and 'set'
# print(set2 + set3)
print(set2.union(set3))